import { parse } from 'querystring';
// import pathRegexp from 'path-to-regexp';
// import { saveAs } from 'file-saver';

export const getPageQuery = () => parse(window.location.href.split('?')[1]);

// /* eslint no-useless-escape:0 import/prefer-default-export:0 */
// const reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
// export const isUrl = (path) => reg.test(path);
// export const isAntDesignPro = () => {
//   if (ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site') {
//     return true;
//   }

//   return window.location.hostname === 'preview.pro.ant.design';
// }; // 给官方演示站点用，用于关闭真实开发环境不需要使用的特性

// export const isAntDesignProOrDev = () => {
//   const { NODE_ENV } = process.env;

//   if (NODE_ENV === 'development') {
//     return true;
//   }

//   return isAntDesignPro();
// };
// /**
//  * props.route.routes
//  * @param router [{}]
//  * @param pathname string
//  */

// export const getAuthorityFromRouter = (router = [], pathname) => {
//   const authority = router.find(
//     ({ routes, path = '/', target = '_self' }) =>
//       (path && target !== '_blank' && pathRegexp(path).exec(pathname)) ||
//       (routes && getAuthorityFromRouter(routes, pathname)),
//   );
//   if (authority) return authority;
//   return undefined;
// };

// export const getRouteAuthority = (path, routeData) => {
//   let authorities;
//   routeData.forEach((route) => {
//     // match prefix
//     if (pathRegexp(`${route.path}/(.*)`).test(`${path}/`)) {
//       if (route.authority) {
//         authorities = route.authority;
//       } // exact match

//       if (route.path === path) {
//         authorities = route.authority || authorities;
//       } // get children authority recursively

//       if (route.routes) {
//         authorities = getRouteAuthority(path, route.routes) || authorities;
//       }
//     }
//   });
//   return authorities;
// };

// /**
//  * 广度优先遍历routes
//  * @param {string} routes from router props
//  * @param {function} func return false, child routes will be added to next iterator
//  */
// export const iterateRoutes = (routes, func) => {
//   let branch = routes;
//   while (branch.length) {
//     const subBranch = [];
//     branch.forEach((item) => {
//       if (func && func(item) === false) {
//         return;
//       }
//       if (Object.prototype.toString.call(item.routes) === '[object Array]') {
//         subBranch.push(...item.routes);
//       }
//     });
//     branch = subBranch;
//   }
// };

// export const findRouteByPath = (routes, path) => {
//   let restPath = path;
//   let targetRoute;

//   iterateRoutes(routes, (item) => {
//     let iterateSubRoute = false;

//     if (item.path === '/' || restPath.startsWith(item.path)) {
//       if (item.path !== '/') {
//         restPath = restPath.substring(item.path.length);
//       }
//       if (!restPath) {
//         targetRoute = targetRoute || item;
//       }
//       iterateSubRoute = true;
//     }

//     return iterateSubRoute;
//   });

//   return targetRoute;
// };

// export const findRouteByName = (routes, name) => {
//   let targetRoute;

//   iterateRoutes(routes, (item) => {
//     if (targetRoute) {
//       return false;
//     }

//     if (item.name === name) {
//       targetRoute = item;
//       return false;
//     }
//     return true;
//   });
//   return targetRoute;
// };

// export const getComputedStyle = (ele, style) => {
//   if (window.getComputedStyle) {
//     return window.getComputedStyle(ele)[style];
//   }
//   return ele.currentStyle && ele.currentStyle[style];
// };

// /**
//  * @param {string} url 文件地址，可能会经过nginx转发
//  * @param {string} fileName 文件名称
//  */
// export async function downloadFile(url, fileName) {
//   const blob = await getBlob(url);
//   if (!blob) {
//     return;
//   }
//   if (window.navigator.msSaveBlob) {
//     // for IE
//     window.navigator.msSaveBlob(blob, fileName);
//   } else {
//     saveAs(blob, `${fileName}`);
//   }
// }

// async function getBlob(url) {
//   return new Promise((resolve) => {
//     const xhr = new XMLHttpRequest();
//     xhr.open('GET', `/${url}`, true);
//     xhr.responseType = 'blob';
//     xhr.onload = () => {
//       if (xhr.status === 200) {
//         resolve(xhr.response);
//       }
//     };
//     xhr.send();
//   });
// }

// export function getStyle(element) {
//   if (element.currentStyle) {
//     return element.currentStyle;
//   }
//   return window.getComputedStyle(element, null);
// }

// export function toThousands(num) {
//   var result = '', counter = 0;
//   var dot = String(num).indexOf(".");
//   if(dot != -1){
//        // alert("有小数点");
//       // 获取小数点后面的数字(indexOf和substring都不支持数字，所以要先转字符串才可以用)
//       var dotCnt = String(num).substring(dot+1,num.length);

//       // 获取小数点前面的数字
//       num = String(num).split('.')[0]
//       num = (num || 0).toString();
//       for (var i = num.length - 1; i >= 0; i--) {
//           counter++;
//           result = num.charAt(i) + result;
//           if (!(counter % 3) && i != 0) { result = ',' + result; }
//       }
//       result = result + '.' + dotCnt;
//       return result;
      
//   }else{
//       // alert("没有小数点");
//       return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
//   }
// }